module dynamic_array();

// <data_type> array_name []; // 声明动态数组
logic [7:0] dyn_arr[]; // 动态数组

initial begin
    // 通过 new() 方法来创建动态数组
    dyn_arr = new[5]; // 创建一个大小为 5 的动态数组
    $display("dyn_arr.size()=%0d", dyn_arr.size());

    // 初始化动态数组
    dyn_arr = {0, 1, 2, 3, 4}; // 初始化动态数组

    // 打印动态数组的内容
    foreach (dyn_arr[i]) begin
        $display("dyn_arr[%0d]: %0d", i, dyn_arr[i]);
    end

    // 动态数组的大小可以在运行时动态改变
    dyn_arr = new[8](dyn_arr); // 扩展动态数组的大小为 8
    $display("dyn_arr.size()=%0d", dyn_arr.size());

    // 打印新的动态数组的内容
    foreach (dyn_arr[i]) begin
        $display("dyn_arr[%0d]: %0d", i, dyn_arr[i]);
    end

    dyn_arr.delete(); // 删除动态数组
    // 删除后，动态数组的大小为 0
    $display("dyn_arr.size()=%0d", dyn_arr.size());
end

endmodule
